import http from 'wx-https'
// 配置基地址
http.baseURL = 'https://live-api.itheima.net'
// 响应拦截器配置
http.intercept.response = async ({
  data,
  statusCode,
  config
}) => {
  if (statusCode === 401) {
    console.log(11, config)
    // 若refreshToken 也过期了 直接跳转上一个页面
    if (config.url.includes('refreshToken')) {
      const Pages = getCurrentPages()
      // 获取的是当前页面 为了后面把当前页面传给登录页面 然后返回的时候可以返回到当前页面
      const CurrentPages = Pages[Pages.length - 1]
      wx.redirectTo({
        // 传值给登录页面 然后登录页面那边通过onLoad钩子里面的option接收
        url: `/pages/login/index?redirectUrl=${CurrentPages.route}`,
      })
    }
    // 在这个分支里面 就是token过期
    // 可以发送刷新token的代码
    const res = await http({
      url: wx.$http.baseURL + '/refreshToken',
      method: 'post',
      header: {
        Authorization: getApp().refreshToken
      }
    })
    console.log(res)
    // 把存到本地存储中的token 进行封装 因为在别的页面也需要使用
    getApp().settoken(res.data.token, res.data.refreshToken)
    // 如果获取到了新的token值 应该把之前的token失效的请求再走一遍
    http(Object.assign(config, {
      header: {
        Authorization: getApp().token
      }
    }))
  }
  return data
}
// 请求拦截器
http.intercept.request = (config) => {
  // 在请求头里面添加token
  config.header = {
    Authorization: getApp().token
  }
  // console.log(config)
  return config
}
// 给全局注册一下 wx一个组件
wx.$http = http
// 做一个默认导出的功能
export default http